import { UserConfig, ConfigEnv, loadEnv, defineConfig } from 'vite'

import path from 'path'
import { createPlugins } from './build/pulugins'
import { server } from 'typescript'

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
  const env = loadEnv(mode, process.cwd())
  const { VITE_APP_PORT, VITE_APP_BASE_API_TYPE, VITE_APP_BASE_API } = env
  return {
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src')
      }
    },
    server: {
      // 是否开启 https
      // https: false,
      host: '0.0.0.0',
      port: Number(VITE_APP_PORT),
      open: true, // 运行是否自动打开浏览器
      // 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
      proxy: {
        [VITE_APP_BASE_API_TYPE]: {
          // target: 'https://xxx.com', // 代理的线上的接口地址
          // target: 'http://localhost:9528', // 本地接口地址
          target: VITE_APP_BASE_API, // 本地接口地址
          changeOrigin: true,
          // 如果要代理 websockets
          // ws: false,
          rewrite: (path) => path.replace(new RegExp('^' + VITE_APP_BASE_API_TYPE), '') // 替换 /dev-api 为 target 接口地址
        }

        // '/dev-api': {
        //   target: 'http://localhost:9528',
        //   changeOrigin: true,
        //   rewrite: (path) => path.replace(/^\/dev-api/, ''),
        // },
      }
    },
    plugins: createPlugins(env, false),
    css: {
      // CSS 预处理器
      preprocessorOptions: {
        //define global scss variable
        scss: {
          javascriptEnabled: true,
          additionalData: `@use "@/styles/variables.scss" as *;`
        }
      }
    }
  }
})
